Advances in SymbolicModel Checking Techniques
نویسنده
چکیده
A common theme in symbolic model checking is to compute an inductive strengthening of the desired invariant, which forms a proof that no erroneous state can be reached by the system. The original symbolic model checking algorithm computed this inductive strengthening by computing (a hopefully succinct) representation of all reachable states by fixpoint computations and OBDDs. This set of reachable states is, by definition, closed under the transition relation. If no erroneous state is found to be in this set, then it forms an inductive invariant. Symbolic model checking techniques also handle liveness properties using fixpoint computations. More recently, other techniques for computing inductive strengthenings, which are more efficient in practice, have been proposed. These techniques can broadly be classified as ‘abstraction based’ and ‘resolution based’. In this manuscript, we describe and compare three approaches for computing inductive strengthenings. The first approach computes the inductive strengthening over an abstracted version of the system, refining the abstracted system appropriately when the process fails due to loss of information from abstraction. The second approach uses proofs of unsatisfiability from bounded model checking queries to construct the inductive strengthening. The third approach on the other hand tries to construct the inductive strengthening incrementally by considering individual counterexamples to induction.
منابع مشابه
Reachability checking in complex and concurrent software systems using intelligent search methods
Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...
متن کاملAdvances in Probabilistic Model Checking
Random phenomena occur in many applications: security, communication protocols, distributed algorithms, and performance and dependability analysis, to mention a few. In the last two decades, efficient model-checking algorithms and tools have been developed to support the automated verification of models that incorporate randomness. Popular models are Markov decision processes and (continuous-ti...
متن کاملSoftware model checking with SPIN
The aim of this chapter is to give an overview of the theoretical foundation and the practical application of logic model checking techniques for the verification of multi-threaded software (rather than hardware) systems. The treatment is focused on the logic model checker SPIN, which was designed for this specific domain of application. SPIN implements an automata-theoretic method of verificat...
متن کاملFinding Feasible Counter-examples when Model Checking Abstracted Java Programs
Despite recent advances in model checking and in adapting model checking techniques to software, the state explosion problem remains a major hurdle in applying model checking to software. It is well-accepted that automated techniques for abstracting programs will be necessary to overcome this problem. Most common abstraction techniques compute an upper approximation of the original program. Thu...
متن کاملProbabilistic Model Checking: Advances and Applications
Probabilistic model checking is a powerful technique for formally verifying quantitative properties of systems that exhibit stochastic behaviour. Such systems are found in many application domains: for example, probabilistic behaviour may arise due to the presence of failures in unreliable hardware, message loss in wireless communication channels, or the use of randomisation in distributed prot...
متن کامل